﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace JN.Utility 
{
    public class GenericT1EventArgs<T1> :EventArgs 
    {
        private T1 _value;

        public GenericT1EventArgs(T1 value)
        {
            _value = value;
        }

        public T1 Value { get { return _value; } } 
    }

    public class GenericT2EventArgs<T1,T2> : EventArgs 
    {
        private T1 _value1;
        private T2 _value2;

        public GenericT2EventArgs(T1 value1,T2 value2)
        {
            _value1 = value1;
            _value2 = value2;
        }

        public T1 Value1 { get { return _value1; } }
        public T2 Value2 { get { return _value2; } }
    }

    public class GenericT3EventArgs<T1, T2,T3> : EventArgs
    {
        private T1 _value1;
        private T2 _value2;
        private T3 _value3;

        public GenericT3EventArgs(T1 value1, T2 value2, T3 value3) 
        {
            _value1 = value1;
            _value2 = value2;
            _value3 = value3;
        }

        public T1 Value1 { get { return _value1; } }
        public T2 Value2 { get { return _value2; } }
        public T3 Value3 { get { return _value3; } } 
    }

    public class GenericT4EventArgs<T1, T2, T3,T4> : EventArgs
    {
        private T1 _value1;
        private T2 _value2;
        private T3 _value3;
        private T4 _value4;

        public GenericT4EventArgs(T1 value1, T2 value2, T3 value3, T4 value4)
        {
            _value1 = value1;
            _value2 = value2;
            _value3 = value3;
            _value4 = value4;
        }

        public T1 Value1 { get { return _value1; } }
        public T2 Value2 { get { return _value2; } }
        public T3 Value3 { get { return _value3; } }
        public T4 Value4 { get { return _value4; } }
    }
}
